---
displayed_sidebar: "Chinese"
---

# makedate

## 功能

根据给定的年份和天数值，构造一个日期值。

该函数从 3.1 版本开始支持。

## 语法

```Haskell
DATE makedate(INT year, INT dayOfYear);
```

## 参数说明

- `year`：输入的年份，支持的数据类型为 INT。取值范围 [0,9999]。如果超出该值，返回 NULL。
- `dayOfYear`：天数，支持的数据类型为 INT。为了确保语义与 [dayofyear](./dayofyear.md) 相同，支持的取值范围为 [1,365]。年份为闰年时，取值可以为 366。其他情况返回 NULL。

## 返回值说明

返回一个日期值。

- `year` 的取值范围为 [0,9999]。如果超出该值，返回 NULL。
- `dayOfYear` 的取值必须大于等于 1 小于当年的总天数（普通年份为 365 天，闰年为 366 天）。如果超出该范围，返回 NULL。
- 如果任一输入值为 NULL，返回 NULL。

## 示例

```Plain Text
mysql> select makedate(2023,0);
+-------------------+
| makedate(2023, 0) |
+-------------------+
| NULL              |
+-------------------+

mysql> select makedate(2023,32);
+--------------------+
| makedate(2023, 32) |
+--------------------+
| 2023-02-01         |
+--------------------+

mysql> select makedate(2023,365);
+---------------------+
| makedate(2023, 365) |
+---------------------+
| 2023-12-31          |
+---------------------+

mysql> select makedate(2023,366);
+---------------------+
| makedate(2023, 366) |
+---------------------+
| NULL                |
+---------------------+

mysql> select makedate(9999,365);
+---------------------+
| makedate(9999, 365) |
+---------------------+
| 9999-12-31          |
+---------------------+

mysql> select makedate(10000,1);
+--------------------+
| makedate(10000, 1) |
+--------------------+
| NULL               |
+--------------------+
```

## keyword

MAKEDATE,MAKE
